% !Mode:: "TeX:UTF-8"

\chapter{需求分析}

\section{简介}

\subsection{项目背景}

虽然在国内，新冠肺炎疫情已经得到了非常有效的控制，但是在世界范围内，形势依然非常严峻。
数据表明，绝大部分的患者都有着体温高的表现。通过空气飞沫等进行传染的疾病，在狭小的空间内更容易爆发。
因此，如果可以对较为封闭（比如办公大楼，宿舍）的空间内的人的体温进行有效的监控，对于防疫将会是一个有力的支持。

经过长期的调查，我们发现目前对于人员体温的监控主要有以下几种解决方案：

第一种是在入口和出口处，设立大型的红外测温器，并安排人员实时监控。对于建筑物多的单位，比如学校，这种监控体温的方式的成本是非常高昂的，这种适合于在人流量较大的地方设立

第二种则是对于室内环境，每日几次定时有人拿着测温设备对所有人进行挨个检测并记录，虽然设备的价格降低了，但是人一多，工作人员就苦不堪言，员工或学生也觉得麻烦

综合上述两种体温监控解决方案，我们发现了现有的对于室内人员（包括进出）体温检测的一些不足之处：

\begin{itemize}
  \item 人力成本以及设备成本高昂；
  \item 设备过于明显，给人带来心理不舒适，用户体验差；
  \item 费时费力，降低人流密度；
  \item 缺少配套的图形化界面，无法直观显示温度信息并分析室内风险；
  \item 低端设备检测出的体表温度低于体内温度
  \item[] ……
\end{itemize}

项目设备限制如下：
\begin{itemize}
  \item 不到100元的小型红外测温装置;
  \item 测温装置本地计算量十分有限;
  \item 红外装置廉价，需要近距离才能测出温度。
\end{itemize}

综合以上因素，我们的项目将面向如下的一个场景：
室内的门/室内与室外相通的门，这些门尽量是传统的带有把手的门。

\subsection{解决方案}
设计一个小型测温装置，将其安置在门把手上方，这个装置可以在温度改变（有人用把手出门）的时候进行测温并记录，测得的温度经过计算得到体内温度的预估值，这些值会通过网络经过服务器的处理后在安卓客户端直观显示并给出风险评级。

我们的项目的解决方案的优点在于：
\begin{itemize}
  \item 安装的位置在于门把手上方，被检测人员不会有心理生理不适感，舒适且方便。
  \item 足够便宜且小型，硬件软件安装都十分简便，可以大量推广。
  \item 系统可以自动测温，无需人工操作，省时省力，不影响通道本身的人流量。
  \item 能有效检测体温。
  \item 结构简单，接口丰富，有利于后续的维护。
  \item 数据的可视化以及风险评估让数据更加直观。
\end{itemize}

\subsection{一般约束}
\begin{enumerate}
    \item 系统响应时间要求：\\系统应具有快速响应的特性，用户打开界面和提交事务的平均响应时间应低于1.5秒。用户进行在线实时查询业务操作的数据处理时间应低于5秒。
    \item 系统可靠性要求：\\系统应具有较高的稳定性，所有环节正常运行。
    \item 系统易用性要求：\\目标系统用户界面应操作简洁、易用、灵活，风格统一。系统的用户帮助文档要求齐备，易于进行软件使用。充分考虑系统的易用性。
    \item 系统可维护性要求：\\系统具有良好的可维护性，便于日常维护。同时，系统须具有较低的维护成本。
    \item 系统可扩展性要求：\\系统须采用模块化设计，可根据用户的需求不断周期性更新系统设计，可以进行扩展并预留接口，利于以后升级与扩展。
\end{enumerate}

\section{概述}

\subsection{目标及主要功能}

为了对较为封闭（比如办公大楼，宿舍）的空间内的人的体温进行有效的监控，形成对于防疫的有力支持，系统需要拥有以下功能：
\begin{enumerate}
  \item 杀手功能
  \begin{itemize}
    \item 无需用户或者工作人员操作即可自动测温，方便舒适。
    \item 测量手背温度时，用户可以看到接收到的通信数据通过校验和计算后得到的人体温度和环境温度。
    \item 用户可以查看实时、历史体温测量的显示，当前值、最大值、最小值。
    \item 用户可以查看系统自动生成的实时、历史体温测量数据曲线。
  \end{itemize}
  \item 外围功能
  \begin{itemize}
    \item 移动端或PC可以与GY-MCU90615进行串行通信。
    \item 所有设备均可联网管理，可以查看不同设备的温度检测情况。
    \item 在测量时，系统温度数据，测量地点以及时间对应保存。
  \end{itemize}
  \item 辅助功能
  \begin{itemize}
    \item 系统拥有正常区域、警告区域、报警区域的三级极限值设定。当测量温度为警告温度区间时，界面显示橙色。处于报警区域时,界面显示红色。
    \item 当温度超过正常区域时，用户会收到相应警报。
    \item 可以调节字体大小颜色以及图形界面。
  \end{itemize}
\end{enumerate}

\subsection{涉众分析}
用户：可以进行体温测量并查看当前值、最大值、最小值以及体温数据曲线，当温度超过一定限度会收到警报。

\subsection{使用范围}
系统是通过红外线来进行体温的测量，采用非接触式红外线体温计测温，相对安全、准确，适合老人、儿童、学校和家庭使用，也特别适用于传染疾病患者的体温测量，可以对较为封闭（比如办公大楼，宿舍）的空间内的人的体温进行有效的监控。



\section{UML图}


\subsection{总用例图}

\begin{figure}[H]
  \centering
  \includegraphics[width=1\textwidth]{figures/UseCase}
  \caption{总用例图}\label{fig:UseCase}
  \vspace{\baselineskip} % 表示图与正文空一行
\end{figure}



\subsection{用例描述}

\begin{table}[H]
  \caption{体温测量用例描述}\label{tab:TempDescribe}
  \vspace{0.5em}\wuhao
  \begin{tabularx}{\textwidth}{llX}
  \toprule[1.5pt]
  编号 & 1\\\midrule[1pt]
  名称 & 体温测量\\
  执行者 & 用户\\
  触发条件 & 红外测温传感器感应到人体温度\\
  前置条件 & 无\\
  后置条件 & 无\\
  \tabincell{c}{正常流程} & \tabincell{c}{1.感应到人体温度。 \\2.系统校验分析得到实时温度和环境温度。\\3.系统将实时温度、时间、地点保存。\\4.系统向用户展示实时温度。}\\\bottomrule[1.5pt]
  \end{tabularx}
  \vspace{\baselineskip}
\end{table}

\begin{table}[H]
  \caption{数据查询用例描述}\label{tab:DataDescribe}
  \vspace{0.5em}\wuhao
  \begin{tabularx}{\textwidth}{llX}
  \toprule[1.5pt]
  编号 & 2\\\midrule[1pt]
  名称 & 数据查询\\
  执行者 & 用户\\
  触发条件 & 用户查询数据\\
  前置条件 & 点击数据查询按钮\\
  后置条件 & 无\\
  \tabincell{c}{正常流程} & \tabincell{c}{1.用户查询数据并确定要查询的数据。\\ 2.系统判断数据类型。\\3.系统向用户展示数据。} \\\bottomrule[1.5pt]
  \end{tabularx}
  \vspace{\baselineskip}
\end{table}

\begin{table}[H]
  \caption{查询当前值、最小值、最大值}\label{tab:MaxMinDescribe}
  \vspace{0.5em}\wuhao
  \begin{tabularx}{\textwidth}{llX}
  \toprule[1.5pt]
  编号 & 2.1\\\midrule[1pt]
  名称 & 查询当前值、最小值、最大值\\
  执行者 & 用户\\
  触发条件 & 用户查询当前值、最小值、最大值\\
  前置条件 & 点击按钮\\
  后置条件 & 无\\
  正常流程 & 1.用户查询数据。
  2.系统展示数据。\\\bottomrule[1.5pt]
  \end{tabularx}
  \vspace{\baselineskip}
\end{table}

\begin{table}[H]
  \caption{查询数据曲线}\label{tab:CurveDescribe}
  \vspace{0.5em}\wuhao
  \begin{tabularx}{\textwidth}{llX}
  \toprule[1.5pt]
  编号 & 2.2\\\midrule[1pt]
  名称 & 查询数据曲线\\
  执行者 & 用户\\
  触发条件 & 用户查询数据曲线\\
  前置条件 & 点击按钮\\
  后置条件 & 无\\
  正常流程 & 1.用户查询数据。
  2.系统展示数据。\\\bottomrule[1.5pt]
  \end{tabularx}
  \vspace{\baselineskip}
\end{table}

\begin{table}[H]
  \caption{高温警报}\label{tab:WarningDescribe}
  \vspace{0.5em}\wuhao
  \begin{tabularx}{\textwidth}{llX}
  \toprule[1.5pt]
  编号 & 3\\\midrule[1pt]
  名称 & 高温警报\\
  执行者 & 系统\\
  触发条件 & 用户体温过高\\
  前置条件 & 无\\
  后置条件 & 无\\
  正常流程 & 1.系统判断用户温度是否过高
  2.界面改变
  3.用户收到警报\\
  \tabincell{c}{扩展流程} & \tabincell{c}{2.1当测量温度为警告温度区间时，界面显示橙色。\\2.2处于报警区域时,界面显示红色。}\\
  特殊需求 & 系统发出警报或者报警\\\bottomrule[1.5pt]
  \end{tabularx}
  \vspace{\baselineskip}
\end{table}

\subsection{活动图和时序图}

\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{figures/TempActivity}
\caption{温度测量活动图}\label{fig:TempActivity}
\vspace{\baselineskip} % 表示图与正文空一行
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{figures/DataActivity}
\caption{数据查询活动图}\label{fig:DataActivity}
\vspace{\baselineskip} % 表示图与正文空一行
\end{figure}



\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{figures/WarningActivity}
\caption{高温警报活动图}\label{fig:WarningActivity}
\vspace{\baselineskip} % 表示图与正文空一行
\end{figure}


\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{figures/TempSequence}
\caption{温度测量时序图}\label{fig:TempSequence}
\vspace{\baselineskip} % 表示图与正文空一行
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{figures/DataSequence}
\caption{数据查询时序图}\label{fig:DataSequence}
\vspace{\baselineskip} % 表示图与正文空一行
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{figures/WarningSequence}
\caption{高温警报时序图}\label{fig:WarningSequence}
\vspace{\baselineskip} % 表示图与正文空一行
\end{figure}